Dart Dart Dart Dart

TIPE DATA DASAR

dalam Pemrograman Dart

BAB 3
Number Boolean String Dynamic Type Casting
🎯

Tujuan Pembelajaran

🔢

Number

Menggunakan int, double, dan num untuk operasi angka.

✓✕

Boolean

Memakai true/false untuk logika dan pengambilan keputusan.

📝

String

Mengolah teks, interpolation, dan method String dasar.

🔁

Konversi

Menggunakan dynamic dan type casting secara tepat.

1.1

Number (Angka)

📌 Penjelasan

Tipe data Number dalam Dart memiliki dua jenis utama:

  • int Bilangan bulat tanpa desimal contoh: 1, 100, -5
  • double Bilangan dengan desimal contoh: 3.14, -0.5, 2.0
  • num Tipe umum yang bisa menampung int atau double
💡

Penting: Dart adalah bahasa strongly-typed, artinya tipe data harus jelas meskipun bisa menggunakan var untuk inferensi otomatis.

1.1

Number - Contoh Kode

number_example.dart
void main() {
  // Integer (bilangan bulat)
  int umur = 17;
  int jumlahSiswa = 30;

  // Double (bilangan desimal)
  double nilaiPI = 3.14159;
  double tinggi = 165.5;

  // Num (bisa int atau double)
  num angka1 = 100;     // int
  num angka2 = 99.9;    // double

  // Operasi matematika
  int penjumlahan = 10 + 5;       // 15
  double pembagian = 15 / 3;     // 5.0 (selalu double)
  int pembagianBulat = 15 ~/ 3;  // 5 (pembagian integer)
  int sisaBagi = 17 % 5;         // 2 (modulus)
}
+ Tambah
- Kurang
* Kali
/ Bagi
~/ Bagi Int
% Modulus
1.2

Boolean (True/False)

📌 Penjelasan

Tipe data Boolean atau bool hanya memiliki dua nilai:

true (benar)
false (salah)

Karakteristik Boolean di Dart:

  • Harus explicitly true atau false
  • Tidak ada "truthy" atau "falsy"
  • Tipe data: bool
  • Digunakan dalam kondisi if-else, while, for
1.2

Boolean - Contoh Kode

boolean_example.dart
void main() {
  // Boolean dasar
  bool sudahLulus = true;
  bool sedangHujan = false;

  // Operator perbandingan
  bool lebihBesar = 10 > 5;   // true
  bool samaDengan = 5 == 5;  // true
  bool tidakSama = 7 != 3;   // true

  // Operator logika
  bool dan = true && false;  // false
  bool atau = true || false; // true
  bool tidak = !true;        // false
}

Operator Perbandingan

> Lebih besar
< Lebih kecil
== Sama dengan
!= Tidak sama
>= Lebih besar sama
<= Lebih kecil sama

Operator Logika

&& AND (semua harus true)
|| OR (salah satu true)
! NOT (kebalikan)
1.3

String (Teks)

📌 Penjelasan

Tipe data String digunakan untuk menyimpan teks atau karakter.

📝
Single/Double Quotes '...' atau "..."
📄
Multi-line '''...'''
🔗
Interpolation $variabel atau ${ekspresi}
📁
Raw String r'...'
1.3

String - Contoh Kode

string_example.dart
void main() {
  // String dasar
  String nama = "Budi Santoso";
  String alamat = 'Jl. Merdeka No. 123';

  // String interpolation
  String namaDepan = "Budi";
  int umur = 17;
  String kalimat = 'Nama saya $namaDepan, umur ${umur} tahun';

  // Methods string
  String teks = "Belajar Programming";
  print(teks.length);           // 19
  print(teks.toUpperCase());    // "BELAJAR PROGRAMMING"
  print(teks.toLowerCase());    // "belajar programming"
  print(teks.contains("Program")); // true
  print(teks.substring(0, 7));   // "Belajar"
}
.lengthPanjang string
.toUpperCase()Huruf besar
.toLowerCase()Huruf kecil
.contains()Cek substring
.substring()Potong string
.split()Pecah string
1.4

Dynamic (Tipe Data Dinamis)

📌 Penjelasan

Dart menyediakan tipe dynamic untuk kasus khusus di mana tipe data bisa berubah.

var Tipe ditentukan saat inisialisasi, tidak bisa berubah
dynamic Tipe bisa berubah kapan saja
Object Tipe dasar semua object, perlu casting
⚠️

Penggunaan dynamic sebaiknya diminimalkan karena menghilangkan keuntungan type-safety!

1.4

Dynamic - Contoh Kode

dynamic_example.dart
void main() {
  // VAR - tipe ditentukan saat inisialisasi
  var angka = 100;        // Dart inference: int
  // angka = "seratus";   // ERROR! Tidak bisa ubah tipe
  angka = 200;            // OK, masih int

  // DYNAMIC - tipe bisa berubah
  dynamic data = 100;           // Awalnya int
  print(data.runtimeType);      // int

  data = "Seratus";             // Berubah jadi String
  print(data.runtimeType);      // String

  data = true;                  // Berubah jadi bool
  print(data.runtimeType);      // bool

  // Mengecek tipe data
  print(data is bool);          // true
}
1.5

Konversi Tipe Data (Type Casting)

📌 Penjelasan

Konversi tipe data sangat penting karena Dart adalah strongly-typed.

Cara Konversi di Dart:

int.parse() String → int
double.parse() String → double
.toString() Any → String
.toInt() double → int
.toDouble() int → double
1.5

Type Casting - Contoh Kode

type_casting.dart
void main() {
  // STRING KE NUMBER
  String stringAngka = "123";
  int angka = int.parse(stringAngka);      // 123
  double desimal = double.parse("3.14");  // 3.14

  // Parse dengan default value (aman)
  int aman = int.tryParse("abc") ?? 0;  // 0 jika gagal

  // NUMBER KE STRING
  int nilai = 100;
  String str = nilai.toString();        // "100"

  // INT DAN DOUBLE
  double des = 9.8;
  int bulat = des.toInt();      // 9 (truncate)
  int bundar = des.round();    // 10 (pembulatan)
  int bawah = des.floor();     // 9 (ke bawah)
  int atas = des.ceil();       // 10 (ke atas)
}
📚

MINI PROJECT

di Kelas

1 Kalkulator Sederhana
2 Cek Kelulusan Siswa
3 Generator Kartu Identitas
4 Konverter Suhu
Project 1

🧮 Kalkulator Sederhana

Tujuan: Memahami Number dan operasi matematika

kalkulator.dart
void main() {
  int angka1 = 15;
  int angka2 = 3;

  int tambah = angka1 + angka2;
  int kurang = angka1 - angka2;
  int kali = angka1 * angka2;
  double bagi = angka1 / angka2;
  int bagiInt = angka1 ~/ angka2;
  int modulus = angka1 % angka2;

  print("=== KALKULATOR SEDERHANA ===");
  print("Penjumlahan: $angka1 + $angka2 = $tambah");
  print("Pengurangan: $angka1 - $angka2 = $kurang");
  print("Perkalian  : $angka1 × $angka2 = $kali");
}

Output:

=== KALKULATOR SEDERHANA ===
Penjumlahan: 15 + 3 = 18
Pengurangan: 15 - 3 = 12
Perkalian  : 15 × 3 = 45
Project 2

🎓 Cek Kelulusan Siswa

Tujuan: Memahami Boolean dan operator perbandingan

kelulusan.dart
void main() {
  String namaSiswa = "Andi Wijaya";
  int nilaiUjian = 75;
  int persenKehadiran = 80;
  int nilaiTugas = 85;

  bool nilaiCukup = nilaiUjian >= 70;
  bool kehadiranCukup = persenKehadiran >= 75;
  bool tugasCukup = nilaiTugas >= 70;

  bool lulus = nilaiCukup && kehadiranCukup && tugasCukup;

  print("Nama: $namaSiswa");
  print("STATUS: ${lulus ? 'LULUS ✓' : 'TIDAK LULUS ✗'}");
}

Output:

Nama: Andi Wijaya
STATUS: LULUS ✓
Project 3

🪪 Generator Kartu Identitas

Tujuan: Memahami String dan string interpolation

kartu_identitas.dart
void main() {
  String namaDepan = "Siti";
  String namaBelakang = "Nurhaliza";
  String kelas = "10A";
  String noInduk = "2024001";
  String sekolah = "SMA Nusantara";

  String namaLengkap = "$namaDepan $namaBelakang";
  String inisial = "${namaDepan[0]}${namaBelakang[0]}";

  print("╔═══ KARTU PELAJAR DIGITAL ═══╗");
  print("║  Nama: ${namaLengkap.toUpperCase()}");
  print("║  NIS : $noInduk");
  print("║  Kelas: $kelas | Inisial: $inisial");
  print("╚═════════════════════════════╝");
}
Project 4

🌡️ Konverter Suhu

Tujuan: Memahami konversi tipe data dan perhitungan

konverter_suhu.dart
void main() {
  String celsiusString = "25";  // Input sebagai string

  // Konversi string ke number
  double celsius = double.parse(celsiusString);

  // Rumus konversi
  double fahrenheit = (celsius * 9/5) + 32;
  double kelvin = celsius + 273.15;
  double reamur = celsius * 4/5;

  print("╔═══ KONVERTER SUHU ═══╗");
  print("║  Input: ${celsius}°C");
  print("║  → Fahrenheit: ${fahrenheit.toStringAsFixed(1)}°F");
  print("║  → Kelvin: ${kelvin.toStringAsFixed(2)}K");
  print("║  → Reamur: ${reamur.toStringAsFixed(1)}°R");
  print("╚══════════════════════╝");
}

📝 Ringkasan

🔢

Number

int, double, num untuk angka

✓✗

Boolean

true / false untuk logika

📝

String

Teks dengan interpolation

🔄

Dynamic

var, dynamic, Object

🔀

Type Casting

parse(), toString(), toInt()

Terima kasih! 🎉

Selamat belajar Dart!